Mostrando entradas con la etiqueta Proyecto Galatea. Mostrar todas las entradas
Mostrando entradas con la etiqueta Proyecto Galatea. Mostrar todas las entradas

viernes, 28 de diciembre de 2012

Construir Quadcopter Autónomo: Proyecto Galatea, Fase 2 acabada


Bien después de 2 años investigando en el master de robótica y automatizacion se acabo lo que se daba ^^.
El master que fue impartido en la Carlos 3 de Madrid me aporto poquito o nada a los conocimientos que ya tenia (donde aprendí mas es picandome con los compañeros de clase, que ahí es donde había nivel).
Dicho esto NO RECOMIENDO, bajo ningún concepto este master impartido en esta universidad (he de decir que entre en este master porque amigos mios me habían informado que esta universidad era bastante buena, además de tener bastante prestigio, por eso me decante por esta opción).

Bueno, criticas a parte, vamos al meollo del asunto.

El pdf que dejo a continuación es un desglose explicando paso a paso la evolucion (tanto la contruccion del quadcopter, como el control de vuelo).
El quadcopter no esta acabado, ya que solo es capaz de mantenerse en equilibrio y por desgracia no es capaz de volar. Pero he de decir que pienso continuar el proyecto sin tener por medio profesores que me hagan perder el tiempo con sus cábalas.

 Espero que os guste e iré añadiendo todas las nuevas mejoras e iré poniendo también el pdf desglosado en futuras entradas para que sea mas sencillo de entender.

 Link: Como contruir un quadcopter autónomo
Mis Robots Noticias Proyecto Galatea Tutoriales

jueves, 30 de agosto de 2012

Proyecto Galatea: comunicacion de datos Quadcopter a Pc y Pc a Quadcopter

Después de 2 semanas pegandome para que funcione esto, lo he conseguido.

Antes de nada es importante presentar los nuevos componentes:

- La IMU Razor 9 y el chip USB-serie:




La IMU es la que esta a la izquierda.



El echo que haya cambiado mi acelerometro y mi giroscopio por esta IMU es principalmente por 3 causas.
Primero porque cuenta con una brújula electrónica que antes o después la iba a tener que comprar para compensar el giro y que no fuera en linea recta dando vueltas.
Segundo porque unifica los 3 componentes en uno solo a través de un microcontrolador solo para realizar las ecuaciones de Gauss lo cual libera al procesador principal (Arduino) de esta carga y centrarse en el control.
Tercero , ultimamente estaba recibiendo datos raros del eje de mi acelerometro (creo que he podido cascarlo).

Es importante decir que el firmware que lleva el Razor 9 no es precisamente la bomba, asi que para hacerlas rápido actualicé a uno que hizo entre otros Jordi Muñoz, y funciona bastante mejor.

- La placa Arduino Mega:



El echo de tener que comprar un nuevo arduino es porque la comunicacion entre varios procesadores y matlab requiere varios puertos de entrada y Arduino Uno solo posee 1, por lo cual no me valía (una compra no esperada....). Pero bueno en un principio este Arduino tiene algo mas de potencia de computo y ahora me salen las entradas y salidas por las orejas.





Por ultimo comentar cual ha sido el proceso.

1) Actualizar IMU.

2) Cargar nuestro software en el Arduino SIN conectar la IMU o el compilador nos dará un error (y cuesta bastante identificar de que es).

3) Desconectamos el USB y conectamos la IMU. Importante conectar la TX de la IMU con la RX del Arduino y viceversa.

4) Abriendo la consola comprobar que estamos recibiendo datos correctos. Nota: la IMU emite a 56k, así que el Braurade desde el Arduino para recoger datos a 56k.

5) Abrimos el Matlab y cargamos nuestro código que contendrá una parte para enlazarse con el Arduino y otra parte para leer los datos emitidos desde el Arduino y otra parte que enviara los datos al Arduino.

Todos estos tutoriales de como se comunica Matlab con Arduino y Arduino con Matlab están colgados en estradas anteriores en la seccion de "Mis robots".

A continuación añado un vídeo paso a paso.



Un saludo.
Mis Robots Proyecto Galatea Tutoriales

jueves, 23 de agosto de 2012

Proyecto Galatea: Arduino -> MatLab (comunicacion quadcopter -> PC)

Bueno pues traemos buenas nuevas, por fin funciona la comunicación Arduino -> Matlab.
La pregunta que estaba haciendo mal?. siempre no saber usa Matlab....

Bien la prueba es simple, engancho mi acelerometro a la entrada analogica 0, y envío los datos al Matlab y que los imprima desde el Matlab.

Código Arduino:

void setup() {
  // inicializar puerto serie
  Serial.begin(9600);   
}

void loop() { 
  int acelerometroX = analogRead(A0);
   // enviar
   Serial.println(acelerometroX); 
}


Código Matlab:

delete (instrfind({'Port'},{'COM3'}));
placa = serial( 'COM3' , 'BaudRate', 9600 );
fopen( placa );


while (true)
   loQueRecibo = fscanf( placa );
   loQueRecibo
end


Cuando declarais: placa = serial( 'COM3' , 'BaudRate', 9600 ). Tened en cuenta el puerto que usáis ( COM3, sera el mismo que estéis usando en el compilador de Arduino), y el BaudRate (9600), debe coincidir con el del Arduino (Serial.begin(9600)).


Con esto tenemos la comunicacion Bi-direccional conseguida entre Arduino y MatLab.
Ahora llegara lo más divertido... en próximas entregas presentare los nuevos componente comprado para el quadcopter, que reunirá la comunicacion Arduino<->Matlab con este componente nuevo.

Un saludo.
Mis Robots Proyecto Galatea

martes, 14 de agosto de 2012

Proyecto Galatea, unión con Matlab (Comunicación Matlab -> Arduino)

Bien pues continuo haciendo experimentos para el nuevo sistema de control y parece que da sus frutos, por ahora necesito conseguir una comunicacion bidireccional entre Arduino y Matlab, para monitorizar que va pasando por "su cabeza".

Por ahora de Arduino -> Matlab, me esta dandos ligeros problemas, ya que por alguna razón solo recibo desde matlab el primer dato, aunque desde el Arduino este mandado mas.

La comunicacion Matlab -> Arduino, funciona correctamente.

Os dejo un resumen del código que se necesita:

Primero arrancamos arduino con este código ( lo que hago básicamente es cambiar la velocidad de un motor desde matlab):

int ledPin = 13;
char * val ="0";

int vel = 120;
int numero = 0;
int tipoUnidad = 0;
int motor = 11;
void setup(){
   Serial.begin(9600);
   equilibrarMotores(); 

   pinMode(ledPin, OUTPUT );
}

void loop(){
   if (Serial.available() > 0) {
     val[0] = Serial.read(); // lee el byte de entrada:     
  
       int num = atoi(val);
       switch(tipoUnidad){
          case 0:
             numero += num*100;
             tipoUnidad++;
             break;
          case 1:
             numero += num*10;  
             tipoUnidad++;      
             break;
          case 2:
             numero += num; 
             analogWrite (motor,numero);                                            
             digitalWrite(ledPin, HIGH);   // enciende el LED
             delay(20);                  // espera por un segundo
             digitalWrite(ledPin, LOW);    // apaga el LED
             delay(20);             
             numero = 0; 
             tipoUnidad=0;            
            
             break;   
           default:   
             break;     
       }   

     Serial.flush();
   } 
}


Luego arrancamos el Matlab y ponemos lo siguiente:

placa = serial( 'COM3' , 'BaudRate', 9600 );
fopen( placa );

fprintf(placa,'%s','160')

El problema de todo esto (al menos que me ha surgido a mi) es que recibimos bytes y hay que tratarlos desde Arduino, y espero que si lo que queremos es un control de vuelo, este parseo no consuma demasiado calculo en la cpu del Arduino, sino no valdrá para nada.

En el   fprintf(placa,'%s','160'), puedes enviar cadenas más largas, tipo : 160145129, pero siempre (al menos para que este codigo funcione) en grupos de 3.

Se me olvidaba , Matlab posee una libreria para Arduuino de pago, (45€ creo), pero creo que no hay necesidad de pagar.

Un saludo.
Mis Robots Proyecto Galatea

domingo, 22 de julio de 2012

Proyecto Galatea: nuevo entorno

Bien pues el lugar de entrenamiento para hacer el control de vuelo ha ido evolucionando poco a poco al igual que el cuadcopter.

Como en la pasada entrada explique, el cuadcopter fue modificado porque el chasis y el sistema montado tenian 2 problemas;
uno, que tenia mucho ruido y dos, que pesaba demasiado.
Asique aligere todo lo que pude, retire 2 de las 3 baterias, modifique la parte superior, quite el tren de aterrizaje, entre otras cosas.

Esto que supuso? Que la distribucion de pesos vario muchisimo, asique construi una estructura acorde a la nueva zona de entrenamiento, para volver a conseguir saber cuales eran las "velocidades" (PWM) de los motores que me permitian conocer el equilibrio del cuadcopter.

En el entrenador nuevo, se han creado unas medidas de seguridad:






Y para conseguir que solo dependiera de un eje, se improviso la siguiente estrucura:






En la prox entrada adjuntare un video del vuelo.
Mis Robots Proyecto Galatea

lunes, 4 de junio de 2012

Mas progesos en el proyecto Galatea

Pues sigo montando el robot.



Por ahora voy a probar al nuevo circuito que se esta construyendo para tener un circuito impreso de forma profesional para intentar evitar el ruido que existe entre las conexiones.



Por ahora he ahorrado gran parte del circuito y montándola en la protoboard de Arduino.


 Ya he echo las primeras pruebas de datos que recibe con esta nueva configuración y por ahora responde bien el acelerometro, habrá que probar con el giroscopio que es el que vuelve loco a cualquiera.
Mis Robots Proyecto Galatea

lunes, 28 de mayo de 2012

Proyecto galatea: Modificación del chasis

Buenos días a todos, aunque parezca muerto el proyecto del cuadcopter sigue activo.

Realizando varias simulaciones el control de vuelo funcionaba correctamente por lo que deduje que el problema podia venir por 2 lados.

En primer caso por el peso excesivo del cuadcopter. Asi que decidi desmontarlo y rehacerlo, quite 1 de las baterias, movi los componentes del eje central ( en la proxima entrega entendereis para que ;) ) , elimine la parte inferior del chasis y quite la protoboar y todos los componentes metalicos.





El segundo posible fallo puede venir por exceso de ruido en la comunicación de datos entre el hardware. Por ahora he comprado una protoboard pequeña que luego se ensambla a una placa, pero proximamente usare un circuito impreso.





Pondre un tutorial para que aprendais ha hacer vuestros propios circuitos de forma profesional por si quereis que os la construyan en la uni o en algun sitio especializado.





Cuando este finalizado espero tener un cambio positivo en el proyecto.

Saludos!!
Mis Robots Proyecto Galatea

miércoles, 10 de agosto de 2011

martes, 9 de agosto de 2011

Nuevas modificaciones (Proyecto Galatea)


Bueno pues sigo al turrón, tras 1 semanica de vacaciones, empieza la fiesta. He echo un par de cambios.. porque para variar uno se da cuenta de cosillas.

Como ya explique la anterior vez, el cable del USB modificaba enormemente el corportamiento del robot, y le hice autónomo para que no tubiera ningún enganche en tierra. Bueno pues ahora me dado cuenta q las baterías sobre la base y los 2 cables que alimentan a los motores... también influían... así que he subido las baterías al chasis principal y he añadido un tercer interruptor para arrancar el arduino.

De esta manera tengo 1 interruptor por motor y 1 para arrancar el sistema.
Mis Robots Proyecto Galatea

sábado, 16 de julio de 2011

Proyecto Galatea : Fin de la fase 1 del quadcopter


Bueno después de casi 2 meses estancado y que no conseguía salir.... lo logre!!!! ya es capaz de volar ^^!!!!!

El sistema usado es un PID con control de potencia con un sistema fuzzy.
La finalidad de este control es que fuera capaz de mantener el equilibrio corrigiendo de una forma suave y a la vez, si encontraba un golpe de aire (Creado por mi mano dándole un manotazo), fuera capaz de corregirla sin entrar en un "bamboleo" (lo que probocaria que se estrellara en vuelo).

La segunda parte del proyecto, sera mudar todo al quadcopter y probar el sistema para controlar el aladeo y el cabeceo sin tener en cuenta la altitud (ya os mostrare el "chiringuito" que estoy montando en mi habitación xDDD.

Se me olvidaba :

NOTA IMPORTANTE:
Antes hacia las pruebas de vuelo con el cable USB (5v) para suministrar corriente y además poder ver por pantalla trazas de ángulos y demás, me di cuenta de 2 cosas:
1) El cable aunque lo tenia muy olgado para no repercutir en el vuelo... (repercutía, y mucho)
2) 5v no son suficientes para alimentar todos los componentes que tengo añadido a la placa y además no es capaz de leer correctamente los pines, en la documentación pone que el voltaje recomendado para su correcto funcionamiento esta entre 7 y 12 v (yo he usado un portapilas de 9'6 - > 8 pilas AAA).


Mis Robots Proyecto Galatea

sábado, 4 de junio de 2011

Proyecto Galatea: Probando ultrasonidos


Bueno pues siguen llegando piezas nuevas, esta vez los ultrasonidos, he elegido el modelo LV-MaxSonar-EZ0, he elegido este modelo porque es capaz de ver hasta 6 metros y con un ancho bastante amplio.

Estos ultrasonidos irán acoplados a las patas del cuadcopter para el aterrizaje, ya que no me puedo fiar al 100% de barómetro.

Os adjunto el Datasheet del EZ0.
Mis Robots Proyecto Galatea

Proyecto Galatea: Añadiendo sensores de carga


Bueno se ha añadido al sistema mas componentes.
Como ya me habían advertido era muy importante conocer si por algún motivo el robot tenia poca batería bajarlo, así que compre 2 sensores que he soldado a la salida de la batería.

Realmente los sensores por ahora no me valen para mucho porque solo emiten luz y sonido, lo cual para que el arduino conozca si le queda poca batería no es muy útil, así que seguramente haga un apaño al sensor y saque un cable, para cuando el piezo-electrico (el cacharrito que emite sonido) reciba tensión para sonar, coja esa tensión y se la envíe al arduino para saber que le queda poca batería.
Mis Robots Proyecto Galatea

viernes, 15 de abril de 2011

Proyecto Galatea: Nuevo PID de control de vuelo

Bueno pues mejorando el antiguo, esta vez implementando el PID con el acelerometro va ganando estabilidad ^^!!!, recordemos que el PID es lineal, por lo que para casos reales con viento y demás ESTO NO FUNCIONA XDDDDD. Asi que hay que implementar una mejora considerable de control.

Ya os iré poniendo que cambios hago.

Mis Robots Proyecto Galatea

domingo, 10 de abril de 2011

Nuevo control de ángulo de caida (Proyecto Galatea)



Bien aquí vamos una vez más, he cambiado el sistema de control de ángulos, además de añadirle el acelerometro y el sistema de leds.


La verdad es que los datos son muchísimo más preciosos ahora ^^, además con los leds no tengo q estar mirando la pantalla para hacerme una idea del comportamiento del robot ( así igual no pierdo la mano xD).

Bueno os adjunto un vídeo del control, y próximamente lo añadiré al PID del programa principal y haré un nuevo vídeo del control de vuelo.


P.d.: Ya he aprendiendo ha hacer librerías con el Arduino ahora el código va a ser bastante mas legible :P


Mis Robots Proyecto Galatea

miércoles, 6 de abril de 2011

Actualizaciones proximas del proyecto Galatea


Bueno estamos de racha y sacamos en menos que canta un gallo mas información de los avances.

He desembalado mi acelerometro (ADXL 335). Espero que en cuanto sepa usarlo pueda empezar ha hacer un vuelo mucho mas suave. Os iré contando que tal va.

Por ultimo pretendo añadir un sistema de leds para saber que esta haciendo el software en todo momento.
Mis Robots Proyecto Galatea

Primer vuelo autónomo del proyecto Galatea


Bueno pues seguimos avanzando poco a poco ^^!!! hoy he subido un vídeo del primer intento de vuelo real, completamente autónomo.

También os habreis dado cuenta que ya tiene nombre el proyecto ^^!: Galatea.

El PID que uso es uno que he creado simulando una lógica Fuzzy (que cuando veáis el vídeo viereis como le queda mucho por pulir, seguramente acabare usando alguna función para que aprenda realmente ).

El funcionamiento es el siguiente:

1º Se calibra el giroscopio ( de ahí que le veáis en un soporte)
2º Inicia los motores para conseguir mantener estable (Importante: decir que cada motor ni mucho menos les tengo que dar el mismo PWD, el izquierdo es menos potente que el derecho, aunque debieran ser iguales, pero no estamos en el mundo de Yupi).
3º Una vez equilibrado deja de tener sustentación con el palo que uso de lanzadera y empieza a entrar en juego el control de vuelo (mi PID).

Como viereis pega tumbos, rara mente se equilibra, pero es normal, recordemos que solo estoy usando el giroscopio, para una nevegación real y estable se requiere del acelerómetro.

Bueno os dejo el vídeo a continuación.


Mis Robots Proyecto Galatea

domingo, 13 de marzo de 2011

Construyendo un cuadricoptero robótico


Bueno pues aquí vamos, llevo un mes preparando un proyecto para el master (aunque a este paso sera proyecto personal).

Se trata de construir con ayuda de algunos blogs y foros de cuadricopteros a montar uno. El bastante difícil para mi porque soy informático y el tema de electrónica me trae de cabeza, pero bueno.


La idea es que este cuadricoptero sea capaz de volar desde el punto inicial donde se encuentre (localizado gracias a una antena gps) hasta un punto destino que le de a través de coordenadas.

Este robot debe ser capaz de:
- Despegar sin asistencia
- Volar teniendo en cuenta climatología y fenómenos atmosféricos
- Detectar y evadir cualquier obstáculo que encuentre (a través de ultrasonidos).
- Aterrizar en su posición destino.

Por ahora he construido el chasis de madera y agregado los componentes y ahora me toca programar todo el espectáculo xD.

La idea es primero conseguir un funcionamiento correcto en 2 dimensiones (gracias a un sistema de balancin) y posteriormente crear un chasis de aluminio para los 4 motores.

Bueno poco a poco iré subiendo fotos y explicaciones de lo que he ido haciendo.

Fuente: miKuadricoptero.



Mis Robots Proyecto Galatea
 

Productos y tecnologias usadas en este blog:

  • Copyright © LuneGate™ is a registered trademark.
    Designed by Templateism. Hosted on Blogger Platform.